Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Public MustInherit Class Enumeration

	Public Enum LevelName
		dungeon_prison = 1
		dungeon_guards = 2
		dungeon_skeleton = 3
		palace_mirror = 4
		palace_thief = 5
		palace_plunge = 6
		dungeon_weightless = 7
		dungeon_mouse = 8
		dungeon_twisty = 9
		palace_quad = 10
		palace_fragile = 11
		dungeon_tower = 12
		dungeon_jaffar = 13
		palace_rescue = 14
		dungeon_potions = 15
		dungeon_demo = 0
	End Enum

	Public Enum SpriteType
		[nothing]
		kid
		sultan
		guard
		skeleton
	End Enum

	Public Enum Input
		left
		right
		down
		up
		leftshift
		rightshift
		shift
		leftup
		rightup
		leftdown
		righdown
		none
	End Enum

	Public Enum PriorityState
		Normal
		Force
	End Enum

	Public Enum SequenceReverse
		Normal
		Reverse
		'reverse all and reset frame to 0
		FixFrame
		'don't reset frame counter
	End Enum

	Public Enum TileCollision
		''' <summary>
		''' A passable tile is one which does not hinder player motion at all, like a space
		''' </summary>
		Passable = 0

		''' <summary>
		''' An impassable tile is one which does not allow the player to move through
		''' it at all. It is completely solid, like a wall block
		''' </summary>
		Impassable = 1

		''' <summary>
		''' Standard floor
		''' </summary>
		Platform = 2
	End Enum

	Public Enum TileType
		space = 0
		floor = 1
		spikes = 2
		posts = 3
		gate = 4
		dpressplate = 5
		';down
		pressplate = 6
		' ;up
		panelwif = 7
		' ;w/floor  //AMF when loose shake?!?!!?!?
		pillarbottom = 8
		pillartop = 9
		flask = 10
		loose = 11
		panelwof = 12
		' ;w/o floor
		mirror = 13
		rubble = 14
		upressplate = 15
		[exit] = 16
		'left door portion
		exit2 = 17
		'right door portion
		slicer = 18
		torch = 19
		block = 20
		bones = 21
		sword = 22
		window = 23
		window2 = 24
		archbot = 25
		archtop1 = 26
		archtop2 = 27
		archtop3 = 28
		archtop4 = 29
		tile_torch_rubble = 30
		'taked from apoplexy norbert
		tile_loose = 43
		'taked from apoplexy norbert
		'door = 100 //changed from apoplexy norbert
	End Enum

	'first 4 byte are element type the rest is the modifier, _x tells the result formula
	Public Enum Tile
		space_1 = &H0
		space_2 = &H1
		space_3 = &H2
		space_4 = &H3
		space_5 = &Hff

		floor_6 = &H10000
		floor_7 = &H10001
		floor_8 = &H10002
		floor_9 = &H10003
		floor_10 = &H100ff

		spike_11 = &H20000
		spike_12 = &H20001
		spike_13 = &H20002
		spike_14 = &H20003
		spike_15 = &H20004
		spike_16 = &H20005
		spike_17 = &H20006
		spike_18 = &H20007
		spike_19 = &H20008
		spike_20 = &H20009

		posts_21 = &H30000

		gate_22 = &H40000
		gate_23 = &H40001

		dpressplate_24 = &H50000

		pressplate_25 = &H60000

		panelwif_26 = &H70000
		panelwif_27 = &H70001
		panelwif_28 = &H70002
		panelwif_29 = &H70003

		pillarbottom_30 = &H80000

		pillartop_31 = &H90001

		flask_32 = &H100000
		flask_33 = &H100001
		flask_34 = &H100002
		flask_35 = &H100003
		flask_36 = &H100004
		flask_37 = &H100005
		flask_38 = &H100006

		loose_39 = &H110000

		panelwof_40 = &H120000
		panelwof_41 = &H120001
		panelwof_42 = &H120002
		panelwof_43 = &H120003
		panelwof_44 = &H120004
		panelwof_45 = &H120005
		panelwof_46 = &H120006
		panelwof_47 = &H120007

		mirror_48 = &H130000

		rubble_49 = &H140000

		upressplate_50 = &H150000

		exit_51 = &H160000
		exit2_52 = &H170000

		slicer_53 = &H180000
		slicer_54 = &H180001
		slicer_55 = &H180002
		slicer_56 = &H180003
		slicer_57 = &H180004
		slicer_58 = &H180005

		torch_59 = &H190000

		block_60 = &H200000
		block_61 = &H200001

		bones_62 = &H210000

		sword_63 = &H220000

		window_64 = &H230000
		window2_65 = &H240000

		archbot_66 = &H250000
		archtop1_67 = &H260000
		archtop2_68 = &H270000
		archtop3_69 = &H280000
		archtop4_70 = &H290000

		tile_torch_rubble_71 = &H300000
		tile_loose_72 = &H430000

		'Dog = 0x00010000,
		'Cat = 0x00020000,
		'Alsation = Dog | 0x00000001,
		'Greyhound = Dog | 0x00000002,
		'Siamese = Cat | 0x00000001
	End Enum

	Public Enum Modifier
		none = 0
		one = 1
		two = 2
		three = 3
		four = 4
		five = 5
		six = 6
		seven = 7
		eight = 8
		nine = 9
		all = 255
	End Enum

	Public Enum Items
		none
		'nothing default value
		sword
		flask
		potion
	End Enum

	Public Enum StateTile
		normal
		' normal state
		close
		'close animation
		closefast
		'close fast animation
		closed
		'close
		open
		'opening animation
		opened
		dpressplate
		';down
		pressplate
		' ;up
		loose
		'loose floor
		loosefall
		'when loose fall
		rubble
		'when floor break
		looseshake
		'when loose shake but dont fall
		brick
		'floor/space with brickwall
		mask
		'mask state
		',sword //sword tile now item!!
		bones
		'bones
		exit_close_left
		exit_close_left_up
		exit_close_right
		exit_close_right_up
	End Enum


	Public Enum State
		none
		' my state
		question
		'my state for interpretation
		crouch
		'my state
		godown
		'my state invert standup
		ready
		'my state guard ready 
		startrun
		stand
		standjump
		runjump
		turn
		runturn
		stepfall
		jumphangMed
		hang
		climbup
		hangdrop
		freefall
		runstop
		jumpup
		fallhang
		jumpbackhang
		softland
		jumpfall
		stepfall2
		medland
		rjumpfall
		hardland
		hangfall
		jumphangLong
		hangstraight
		rdiveroll
		sdiveroll
		highjump
		step1
		step2
		step3
		step4
		step5
		step6
		step7
		step8
		step9
		step10
		step11
		step12
		step13
		fullstep
		turnrun
		testfoot
		bumpfall
		hardbump
		bump
		superhijump
		standup
		stoop
		impale
		crush
		deadfall
		halve
		'COMBAT ACTION
		engarde
		advance
		retreat
		strike
		flee
		turnengarde
		strikeblock
		readyblock
		landengarde
		bumpengfwd
		bumpengback
		blocktostrike
		strikeadv
		climbdown
		blockedstrike
		climbstairs
		dropdead
		stepback
		climbfail
		stabbed
		faststrike
		strikeret
		alertstand
		drinkpotion
		crawl
		alertturn
		fightfall
		efightfall
		efightfallfwd
		running
		stabkill
		fastadvance
		goalertstand
		arise
		turndraw
		guardengarde
		pickupsword
		resheathe
		fastsheathe
		Pstand
		Vstand
		Vwalk
		Vstop
		Palert
		Pback
		Vexit
		Mclimb
		Vraise
		Plie
		patchfall
		Mscurry
		Mstop
		Mleave
		Pembrace
		Pwaiting
		Pstroke
		Prise
		Pcrouch
		Pslump
		Mraise
		splash_player
		' my state PoP.net 
		splash_enemy
		' my state PoP.net
		delete
		'my state for delete and disrupt a object from memory
	End Enum

	Public Enum TypeFrame
		SPRITE
		COMMAND
	End Enum
	Public Enum TypeCommand
		GOTOFRAME
		GOTOSEQUENCE
		ABOUTFACE
		IFGOTOSEQUENCE
		IFGOTOFRAME
		DELETE
		'delete the sprite.. future implementation..??!?
	End Enum

	Public Enum SpriteEffects
		None = 0
		FlipHorizontally = 1
		FlipVertically = 2
	End Enum


End Class
